<html>
<head><meta charset="utf-8"><title>MacroFileKind  in  hir::Expansion:file_id() · t-compiler/rust-analyzer · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/index.html">t-compiler/rust-analyzer</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/MacroFileKind.20.20in.20.20hir.3A.3AExpansion.3Afile_id().html">MacroFileKind  in  hir::Expansion:file_id()</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="181219980"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/MacroFileKind%20%20in%20%20hir%3A%3AExpansion%3Afile_id%28%29/near/181219980" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Edwin Cheng <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/MacroFileKind.20.20in.20.20hir.3A.3AExpansion.3Afile_id().html#181219980">(Nov 20 2019 at 15:52)</a>:</h4>
<p>I am tracing a bug which fail to expand <code>match_ast</code> ,  I found that in current source code: </p>
<div class="codehilite"><pre><span></span><span class="k">impl</span><span class="w"> </span><span class="n">Expansion</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="k">pub</span><span class="w"> </span><span class="k">fn</span> <span class="nf">file_id</span><span class="p">(</span><span class="o">&amp;</span><span class="bp">self</span><span class="p">)</span><span class="w"> </span>-&gt; <span class="nc">HirFileId</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">        </span><span class="bp">self</span><span class="p">.</span><span class="n">macro_call_id</span><span class="p">.</span><span class="n">as_file</span><span class="p">(</span><span class="n">MacroFileKind</span>::<span class="n">Items</span><span class="p">)</span><span class="w"></span>
<span class="w">    </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</pre></div>


<p>Which is hardcoded as items. But in inner <code>match_ast!</code> expansion,  It fail to expand as trying to parse from <code>TokenTree</code>. (i.e. the expansion is ok, but cannot convert it to <code>ast::Source</code>)</p>
<p>So my question is , how to determine which <code>MacroFileKind</code> it should be here?</p>



<a name="181220126"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/MacroFileKind%20%20in%20%20hir%3A%3AExpansion%3Afile_id%28%29/near/181220126" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/MacroFileKind.20.20in.20.20hir.3A.3AExpansion.3Afile_id().html#181220126">(Nov 20 2019 at 15:54)</a>:</h4>
<p>I thin in the <code>resolve_macro_call</code> we should look at the parent of the maro call and save the appropriate <code>MacroKind</code> as a field of the xpansion</p>



<a name="181221037"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/MacroFileKind%20%20in%20%20hir%3A%3AExpansion%3Afile_id%28%29/near/181221037" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Edwin Cheng <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/MacroFileKind.20.20in.20.20hir.3A.3AExpansion.3Afile_id().html#181221037">(Nov 20 2019 at 16:02)</a>:</h4>
<p>And do it recursively ? I mean if the parent of the macro call HirFileId is MacroFile, try to find it parent in parent HirFileId ?</p>



<a name="181221273"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/MacroFileKind%20%20in%20%20hir%3A%3AExpansion%3Afile_id%28%29/near/181221273" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Edwin Cheng <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/MacroFileKind.20.20in.20.20hir.3A.3AExpansion.3Afile_id().html#181221273">(Nov 20 2019 at 16:05)</a>:</h4>
<p>And can we determine it by only its parent, or we need to know how hierarachy ?</p>



<a name="181221580"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/MacroFileKind%20%20in%20%20hir%3A%3AExpansion%3Afile_id%28%29/near/181221580" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jeremy Kolb <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/MacroFileKind.20.20in.20.20hir.3A.3AExpansion.3Afile_id().html#181221580">(Nov 20 2019 at 16:08)</a>:</h4>
<p>Is this why I'm seeing <code>foo(&lt;|&gt;)</code>end up being a token tree and not a <code>ast::CallExpr</code>?</p>



<a name="181224266"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/MacroFileKind%20%20in%20%20hir%3A%3AExpansion%3Afile_id%28%29/near/181224266" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Edwin Cheng <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/MacroFileKind.20.20in.20.20hir.3A.3AExpansion.3Afile_id().html#181224266">(Nov 20 2019 at 16:36)</a>:</h4>
<p>Maybe <span aria-label="laughing" class="emoji emoji-1f606" role="img" title="laughing">:laughing:</span></p>



<a name="181224459"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/MacroFileKind%20%20in%20%20hir%3A%3AExpansion%3Afile_id%28%29/near/181224459" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Edwin Cheng <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/MacroFileKind.20.20in.20.20hir.3A.3AExpansion.3Afile_id().html#181224459">(Nov 20 2019 at 16:38)</a>:</h4>
<p>It seem to be related, but I’m not sure</p>



<a name="181228369"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/MacroFileKind%20%20in%20%20hir%3A%3AExpansion%3Afile_id%28%29/near/181228369" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/MacroFileKind.20.20in.20.20hir.3A.3AExpansion.3Afile_id().html#181228369">(Nov 20 2019 at 17:16)</a>:</h4>
<p><span class="user-mention" data-user-id="216201">@Edwin Cheng</span> I think you don't need recursion, it should be possible to get the context from just the parent node</p>



<a name="181228403"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/MacroFileKind%20%20in%20%20hir%3A%3AExpansion%3Afile_id%28%29/near/181228403" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/MacroFileKind.20.20in.20.20hir.3A.3AExpansion.3Afile_id().html#181228403">(Nov 20 2019 at 17:17)</a>:</h4>
<p>if parent is <code>MACRO_ITEMS</code>, it's items, etc</p>



<a name="181228408"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/MacroFileKind%20%20in%20%20hir%3A%3AExpansion%3Afile_id%28%29/near/181228408" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/MacroFileKind.20.20in.20.20hir.3A.3AExpansion.3Afile_id().html#181228408">(Nov 20 2019 at 17:17)</a>:</h4>
<p>Not 100% sure, but I think so</p>



<a name="181229476"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/MacroFileKind%20%20in%20%20hir%3A%3AExpansion%3Afile_id%28%29/near/181229476" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Edwin Cheng <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/MacroFileKind.20.20in.20.20hir.3A.3AExpansion.3Afile_id().html#181229476">(Nov 20 2019 at 17:27)</a>:</h4>
<p>Um..</p>
<div class="codehilite"><pre><span></span><span class="n">macro_rules</span><span class="o">!</span><span class="w"> </span><span class="n">foo</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="p">(</span><span class="w"> </span><span class="cp">$($tt</span>:<span class="nc">tt</span><span class="p">)</span><span class="o">*</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">        </span><span class="k">fn</span> <span class="nf">b</span><span class="p">()</span><span class="w"> </span>-&gt; <span class="kt">u32</span> <span class="p">{</span><span class="w"></span>
<span class="w">            </span><span class="cp">$($tt</span><span class="p">)</span><span class="o">*</span><span class="w"></span>
<span class="w">        </span><span class="p">}</span><span class="w"></span>
<span class="w">    </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>

<span class="n">macro_rules</span><span class="o">!</span><span class="w"> </span><span class="n">bar</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="p">()</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>

<span class="n">foo</span><span class="o">!</span><span class="p">(</span><span class="n">b</span><span class="o">&lt;|&gt;</span><span class="n">ar</span><span class="o">!</span><span class="p">());</span><span class="w"></span>
</pre></div>


<p><code>foo</code> is items, but <code>bar</code> is expr, right ?</p>



<a name="181229535"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/MacroFileKind%20%20in%20%20hir%3A%3AExpansion%3Afile_id%28%29/near/181229535" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Edwin Cheng <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/MacroFileKind.20.20in.20.20hir.3A.3AExpansion.3Afile_id().html#181229535">(Nov 20 2019 at 17:27)</a>:</h4>
<p>Um.. you are right, because it is expanded.</p>



<a name="181229625"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/MacroFileKind%20%20in%20%20hir%3A%3AExpansion%3Afile_id%28%29/near/181229625" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Edwin Cheng <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/MacroFileKind.20.20in.20.20hir.3A.3AExpansion.3Afile_id().html#181229625">(Nov 20 2019 at 17:28)</a>:</h4>
<p>The parent of <code>bar</code> is <code>b()</code>. not <code>foo</code></p>



<a name="181229866"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/MacroFileKind%20%20in%20%20hir%3A%3AExpansion%3Afile_id%28%29/near/181229866" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/MacroFileKind.20.20in.20.20hir.3A.3AExpansion.3Afile_id().html#181229866">(Nov 20 2019 at 17:31)</a>:</h4>
<p>Right, the parent of <code>bar</code> would be the block in the expansino code</p>



<a name="181229891"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/MacroFileKind%20%20in%20%20hir%3A%3AExpansion%3Afile_id%28%29/near/181229891" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/MacroFileKind.20.20in.20.20hir.3A.3AExpansion.3Afile_id().html#181229891">(Nov 20 2019 at 17:31)</a>:</h4>
<p>there's a nasty edge case though: <code>macro_rules! foo { () =&gt; { bar!() }}</code></p>



<a name="181229965"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/MacroFileKind%20%20in%20%20hir%3A%3AExpansion%3Afile_id%28%29/near/181229965" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/MacroFileKind.20.20in.20.20hir.3A.3AExpansion.3Afile_id().html#181229965">(Nov 20 2019 at 17:32)</a>:</h4>
<p>Here, the parent of <code>bar</code> is the root node, but it still should be possible to figure out the context (stmt, expr, item) from the <code>kind</code> of this root</p>



<a name="181274101"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/MacroFileKind%20%20in%20%20hir%3A%3AExpansion%3Afile_id%28%29/near/181274101" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Edwin Cheng <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/MacroFileKind.20.20in.20.20hir.3A.3AExpansion.3Afile_id().html#181274101">(Nov 21 2019 at 03:51)</a>:</h4>
<p>Um... another nasty edge case: </p>
<div class="codehilite"><pre><span></span><span class="cp">#![allow(dead_code)]</span><span class="w"></span>

<span class="n">macro_rules</span><span class="o">!</span><span class="w"> </span><span class="n">foo</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="p">(</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">        </span><span class="k">fn</span> <span class="nf">b</span><span class="p">()</span><span class="w"> </span>-&gt; <span class="kt">u32</span> <span class="p">{</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w">    </span><span class="p">};</span><span class="w"></span>

<span class="w">    </span><span class="p">(</span><span class="w"> </span><span class="n">e</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">        </span><span class="k">match</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">_</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w">    </span><span class="p">};</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>

<span class="k">fn</span> <span class="nf">main</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="k">if</span><span class="w"> </span><span class="kc">false</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">        </span><span class="n">foo</span><span class="o">!</span><span class="p">(</span><span class="n">i</span><span class="p">);</span><span class="w"></span>
<span class="w">    </span><span class="p">}</span><span class="w"></span>

<span class="w">    </span><span class="k">if</span><span class="w"> </span><span class="kc">false</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">        </span><span class="n">foo</span><span class="o">!</span><span class="p">(</span><span class="n">e</span><span class="p">);</span><span class="w"></span>
<span class="w">    </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</pre></div>


<p>The ancestors of 2 <code>foo!</code> is same :(</p>



<a name="181274236"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/MacroFileKind%20%20in%20%20hir%3A%3AExpansion%3Afile_id%28%29/near/181274236" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Edwin Cheng <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/MacroFileKind.20.20in.20.20hir.3A.3AExpansion.3Afile_id().html#181274236">(Nov 21 2019 at 03:54)</a>:</h4>
<p>It is <code>EXPR_STMT</code>, so we should add ExprStmt in <code>MacroKindFile</code> ?</p>



<a name="181282563"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/MacroFileKind%20%20in%20%20hir%3A%3AExpansion%3Afile_id%28%29/near/181282563" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/MacroFileKind.20.20in.20.20hir.3A.3AExpansion.3Afile_id().html#181282563">(Nov 21 2019 at 07:43)</a>:</h4>
<p><span class="user-mention" data-user-id="216201">@Edwin Cheng</span> it's just that, at the moment, <code>MacroFIleKind</code> supports only expression or items. We should extend <code>MacroFileKind</code> to propely support all kinds of fragments (together with actually supporting them, like expanding macros in patterns, etc)</p>



<a name="181307738"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/MacroFileKind%20%20in%20%20hir%3A%3AExpansion%3Afile_id%28%29/near/181307738" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Edwin Cheng <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/MacroFileKind.20.20in.20.20hir.3A.3AExpansion.3Afile_id().html#181307738">(Nov 21 2019 at 14:15)</a>:</h4>
<p><span class="user-mention" data-user-id="203366">@Jeremy Kolb</span> I can confirm that the inner <code>match_ast</code> can't expand by mbe now. It use a neat trick to make comma option in macro lhs arm, which i didn’t handle. Will make a PR to fix it and ping you to test again</p>



<a name="181309048"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/MacroFileKind%20%20in%20%20hir%3A%3AExpansion%3Afile_id%28%29/near/181309048" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jeremy Kolb <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/MacroFileKind.20.20in.20.20hir.3A.3AExpansion.3Afile_id().html#181309048">(Nov 21 2019 at 14:29)</a>:</h4>
<p>Cool, if that fixes it I can test signature help again</p>



<a name="181569702"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/MacroFileKind%20%20in%20%20hir%3A%3AExpansion%3Afile_id%28%29/near/181569702" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jeremy Kolb <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/MacroFileKind.20.20in.20.20hir.3A.3AExpansion.3Afile_id().html#181569702">(Nov 21 2019 at 18:24)</a>:</h4>
<p><span class="user-mention" data-user-id="216201">@Edwin Cheng</span> That didn't seem to fix my issue</p>



<a name="181569772"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/MacroFileKind%20%20in%20%20hir%3A%3AExpansion%3Afile_id%28%29/near/181569772" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Edwin Cheng <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/MacroFileKind.20.20in.20.20hir.3A.3AExpansion.3Afile_id().html#181569772">(Nov 21 2019 at 18:25)</a>:</h4>
<p>Yeah, you need another one PR too, Which is related to this topic</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>